The present invention relates to database systems and more particularly to the asynchronous replication of data in database systems.
Data replication in relational or hierarchical databases is increasingly important as databases are deployed more and more in distributed environments. The goal of data replication is to maintain one or more copies of a source object in the database across servers, possibly on different platforms and geographical locations. One method of data replication is log-based asynchronous replication. A database log records all changes to the tables in the database. Changes are captured from the database log outside of a commit scope of the original database transaction.
Before asynchronous replication of data can begin, the replication group of member nodes may first be initialized. Also, once the replication has begun, new members may be added to the replication group, or an existing member may be removed from the replication group. Additionally, since the new members may not have an updated copy of the tables being synchronized, these tables may be synchronized on the new node before the new node joins the replication group. Furthermore, existing protocols may require the new node to receive acknowledgements, either itself or through a proxy, from all the other nodes in the replication group before any changes will be replicated to the new node. While the tables on the new node are being synchronized, and while the new node waits for acknowledgements, the tables may not be available for processing user workloads. This may be disadvantageous, however, because suspending user workloads for any period of time, even a few seconds, is often unacceptable for many businesses.